home *** CD-ROM | disk | FTP | other *** search
- /* AUTHOR: LOUIS HEMMI
- SYSTEM: LOUPHONE
- DATE: 01/89 (UPDATE)
- DATE: 03/93 UPDATE FOR CLIPPER 5.x. USE ARRAY FOR ZODIAC SIGNS
- --------------------------------------------------------------
- CLIPPER 5 switches - /w/a/n
- */
-
- FUNCTION MAIN
-
- /* To demonstrate and verify, feed each date of the year into
- the ZODIAC function and show each date and sign. Direct output
- simultaneously to the screen and to a file called audit.doc
- */
-
- LOCAL mProcDate
- LOCAL mDATE := DATE()
-
- SETCOLOR("W+/B,GR+,B")
- CLEAR
- mProcDate := DATE()
-
- set printer to audit.doc // redirect to file to verify program
- set printer on // open the audit.doc file
-
- DO WHILE MONTH(mProcDate) <= 12 .AND. DAY(mProcDate <= 31)
- // end of current year
- ? mProcDate, " ÕÕ ", ZODIAC(mProcDate) // display/file results
- mProcDate := mProcDate + 1 // increment day
- ENDDO
-
- set printer to // stop redirection
- set printer off // close the file
-
- // if you want to test interactively, or just find out the sign
-
- // DO WHILE LASTKEY() # 27
- // @10,10 GET mDATE
- // READ
- // @12,00 SAY ZODIAC(mDATE)
- // ENDDO
-
- RETURN (NIL)
-
-
-
- FUNCTION ZODIAC
- PARAMETER ZDATE // ZSIGN IS DATE()
-
- LOCAL ZSIGN,SignList // ZSIGN IS RETURNED SIGN , SIGNLIST IS ARRAY
- LOCAL I
-
-
- SignList := {"Aries",;
- "Taurus",;
- "Gemini",;
- "Cancer",;
- "Leo",;
- "Virgo",;
- "Libra",;
- "Scorpio",;
- "Sagittarius",;
- "Capricorn ",;
- "Aquarius ",;
- "Pisces"} // ESTABLISH LITERAL ARRAY OF 12 ELEMENTS
-
- // list of THE ASTROLOGICAL SIGNS
-
- DO CASE
- *
- CASE MONTH(ZDATE) = 1 .AND. DAY(ZDATE) <= 19
- Zsign := SignList[10]
- *
- CASE MONTH(ZDATE) = 1 .AND. DAY(ZDATE) >= 20
- Zsign := SignList[11]
- *
- CASE MONTH(ZDATE) = 2 .AND. DAY(ZDATE) <= 18
- Zsign := SignList[11]
- *
- CASE MONTH(ZDATE) = 2 .AND. DAY(ZDATE) >= 19
- Zsign := SignList[12]
- *
- CASE MONTH(ZDATE) = 3 .AND. DAY(ZDATE) <= 20
- Zsign := SignList[12]
- *
- CASE MONTH(ZDATE) = 3 .AND. DAY(ZDATE) >= 21
- Zsign := SignList[1]
- *
- CASE MONTH(ZDATE) = 4 .AND. DAY(ZDATE) <= 19
- Zsign := SignList[1]
- *
- CASE MONTH(ZDATE) = 4 .AND. DAY(ZDATE) >= 20
- Zsign := SignList[2]
- *
- CASE MONTH(ZDATE) = 5 .AND. DAY(ZDATE) <= 20
- Zsign := SignList[2]
- *
- CASE MONTH(ZDATE) = 5 .AND. DAY(ZDATE) >= 21
- Zsign := SignList[3]
- *
- CASE MONTH(ZDATE) = 6 .AND. DAY(ZDATE) <= 20
- Zsign := SignList[3]
- *
- CASE MONTH(ZDATE) = 6 .AND. DAY(ZDATE) >= 21
- Zsign := SignList[4]
- *
- CASE MONTH(ZDATE) = 7 .AND. DAY(ZDATE) <= 22
- Zsign := SignList[4]
- *
- CASE MONTH(ZDATE) = 7 .AND. DAY(ZDATE) >= 23
- Zsign := SignList[5]
- *
- CASE MONTH(ZDATE) = 8 .AND. DAY(ZDATE) <= 22
- Zsign := SignList[5]
- *
- CASE MONTH(ZDATE) = 8 .AND. DAY(ZDATE) >= 23
- Zsign := SignList[6]
- *
- CASE MONTH(ZDATE) = 9 .AND. DAY(ZDATE) <= 22
- Zsign := SignList[6]
- *
- CASE MONTH(ZDATE) = 9 .AND. DAY(ZDATE) >= 23
- Zsign := SignList[7]
- *
- CASE MONTH(ZDATE) = 10 .AND. DAY(ZDATE) <= 22
- Zsign := SignList[7]
- *
- CASE MONTH(ZDATE) = 10 .AND. DAY(ZDATE) >= 23
- Zsign := SignList[8]
- *
- CASE MONTH(ZDATE) = 11.AND. DAY(ZDATE) <= 21
- Zsign := SignList[8]
- *
- CASE MONTH(ZDATE) = 11.AND. DAY(ZDATE) >= 22
- Zsign := SignList[9]
- *
- CASE MONTH(ZDATE) = 12 .AND. DAY(ZDATE) <= 21
- Zsign := SignList[9]
- *
- CASE MONTH(ZDATE) = 12 .AND. DAY(ZDATE) >= 22
- Zsign := SignList[10]
- *
- OTHERWISE
- Zsign := "Not Defined "
- ENDCASE
- Zsign =Zsign + space(11-len(Zsign))
-
- RETURN (ZSIGN)
- ************* END OF FUNCTION ZODIAC(MDATE) *******